home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume18 / elm2.2 / part03 < prev    next >
Encoding:
Internet Message Format  |  1989-04-12  |  49.4 KB

  1. Subject:  v18i082:  Elm mail system, release 2.2, Part03/24
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rsalz@uunet.UU.NET
  5.  
  6. Submitted-by: dsinc!syd@uunet.UU.NET (Syd Weinstein)
  7. Posting-number: Volume 18, Issue 82
  8. Archive-name: elm2.2/part03
  9.  
  10. #!/bin/sh
  11. # this is part 3 of a multipart archive
  12. # do not concatenate these parts, unpack them in order with /bin/sh
  13. # file Configure continued
  14. #
  15. CurArch=3
  16. if test ! -r s2_seq_.tmp
  17. then echo "Please unpack part 1 first!"
  18.      exit 1; fi
  19. ( read Scheck
  20.   if test "$Scheck" != $CurArch
  21.   then echo "Please unpack part $Scheck next!"
  22.        exit 1;
  23.   else exit 0; fi
  24. ) < s2_seq_.tmp || exit 1
  25. echo "x - Continuing file Configure"
  26. sed 's/^X//' << 'SHAR_EOF' >> Configure
  27. Xd_mkdir='$d_mkdir'
  28. Xd_portable='$d_portable'
  29. Xd_symlink='$d_symlink'
  30. Xd_vfork='$d_vfork'
  31. Xd_voidsig='$d_voidsig'
  32. Xd_whoami='$d_whoami'
  33. Xn='$n'
  34. Xc='$c'
  35. Xpackage='$package'
  36. Xspitshell='$spitshell'
  37. Xshsharp='$shsharp'
  38. Xsharpbang='$sharpbang'
  39. Xstartsh='$startsh'
  40. Xdefine='$define'
  41. Xloclist='$loclist'
  42. Xexpr='$expr'
  43. Xsed='$sed'
  44. Xecho='$echo'
  45. Xcat='$cat'
  46. Xrm='$rm'
  47. Xmv='$mv'
  48. Xcp='$cp'
  49. Xtail='$tail'
  50. Xtr='$tr'
  51. Xmkdir='$mkdir'
  52. Xsort='$sort'
  53. Xuniq='$uniq'
  54. Xgrep='$grep'
  55. Xtrylist='$trylist'
  56. Xtest='$test'
  57. Xinews='$inews'
  58. Xegrep='$egrep'
  59. Xmore='$more'
  60. Xpg='$pg'
  61. XMcc='$Mcc'
  62. Xvi='$vi'
  63. Xmailx='$mailx'
  64. Xmail='$mail'
  65. Xcpp='$cpp'
  66. Xperl='$perl'
  67. Xemacs='$emacs'
  68. Xls='$ls'
  69. Xrmail='$rmail'
  70. Xsendmail='$sendmail'
  71. Xshar='$shar'
  72. Xsmail='$smail'
  73. Xtbl='$tbl'
  74. Xtroff='$troff'
  75. Xnroff='$nroff'
  76. Xuname='$uname'
  77. Xuuname='$uuname'
  78. Xline='$line'
  79. Xchgrp='$chgrp'
  80. Xchmod='$chmod'
  81. Xlint='$lint'
  82. Xsleep='$sleep'
  83. Xpr='$pr'
  84. Xtar='$tar'
  85. Xln='$ln'
  86. Xlpr='$lpr'
  87. Xlp='$lp'
  88. Xtouch='$touch'
  89. Xmake='$make'
  90. Xbin='$bin'
  91. Xd_calendar='$d_calendar'
  92. Xcalendar='$calendar'
  93. Xd_crypt='$d_crypt'
  94. Xcryptlib='$cryptlib'
  95. Xd_cuserid='$d_cuserid'
  96. Xd_flock='$d_flock'
  97. Xd_gethname='$d_gethname'
  98. Xd_douname='$d_douname'
  99. Xd_phostname='$d_phostname'
  100. Xd_host_comp='$d_host_comp'
  101. Xd_getopt='$d_getopt'
  102. Xd_havedbm='$d_havedbm'
  103. Xdbm='$dbm'
  104. Xd_havetlib='$d_havetlib'
  105. Xtermlib='$termlib'
  106. Xd_internet='$d_internet'
  107. Xd_mboxedit='$d_mboxedit'
  108. Xd_newauto='$d_newauto'
  109. Xd_optreturn='$d_optreturn'
  110. Xd_pafirst='$d_pafirst'
  111. Xd_useuuname='$d_useuuname'
  112. Xd_notouchadd='$d_notouchadd'
  113. Xd_noaddfrom='$d_noaddfrom'
  114. Xd_usedomain='$d_usedomain'
  115. Xd_nocheckvalid='$d_nocheckvalid'
  116. Xd_remlock='$d_remlock'
  117. Xmaxattempts='$maxattempts'
  118. Xd_rename='$d_rename'
  119. Xd_setgid='$d_setgid'
  120. Xmailermode='$mailermode'
  121. Xd_strings='$d_strings'
  122. Xd_pwdinsys='$d_pwdinsys'
  123. Xincludepath='$includepath'
  124. Xd_tempnam='$d_tempnam'
  125. Xtempnamo='$tempnamo'
  126. Xtempnamc='$tempnamc'
  127. Xd_termio='$d_termio'
  128. Xd_tminsys='$d_tminsys'
  129. Xd_tz_min='$d_tz_min'
  130. Xd_useembed='$d_useembed'
  131. Xd_utimbuf='$d_utimbuf'
  132. Xdefbatsub='$defbatsub'
  133. Xdefeditor='$defeditor'
  134. Xelmalias='$elmalias'
  135. Xmaxsysalias='$maxsysalias'
  136. Xmaxuseralias='$maxuseralias'
  137. Xhostname='$hostname'
  138. Xphostname='$phostname'
  139. Xmydomain='$mydomain'
  140. Xlib='$lib'
  141. Xlibc='$libc'
  142. Xlinepr='$linepr'
  143. Xmaildir='$maildir'
  144. Xmailer='$mailer'
  145. Xmailgrp='$mailgrp'
  146. Xmansrc='$mansrc'
  147. Xmanext='$manext'
  148. Xmodels='$models'
  149. Xsplit='$split'
  150. Xsmall='$small'
  151. Xmedium='$medium'
  152. Xlarge='$large'
  153. Xhuge='$huge'
  154. Xoptimize='$optimize'
  155. Xccflags='$ccflags'
  156. Xldflags='$ldflags'
  157. Xcc='$cc'
  158. Xlibs='$libs'
  159. Xnametype='$nametype'
  160. Xd_passnames='$d_passnames'
  161. Xd_berknames='$d_berknames'
  162. Xd_usgnames='$d_usgnames'
  163. Xpasscat='$passcat'
  164. Xpager='$pager'
  165. Xpathalias='$pathalias'
  166. Xdomains='$domains'
  167. Xlsysfile='$lsysfile'
  168. Xlsysvssys='$lsysvssys'
  169. Xprefshell='$prefshell'
  170. Xrmttape='$rmttape'
  171. Xroff='$roff'
  172. Xtmpdir='$tmpdir'
  173. Xxencf='$xencf'
  174. Xxenlf='$xenlf'
  175. Xd_xenix='$d_xenix'
  176. Xd_bsd='$d_bsd'
  177. XCONFIG=true
  178. XEOT
  179. X
  180. XCONFIG=true
  181. X
  182. Xecho " "
  183. Xdflt=''
  184. Xfastread=''
  185. Xecho "If you didn't make any mistakes, then just type a carriage return here."
  186. Xrp="If you need to edit config.sh, do it as a shell escape here:"
  187. X$echo $n "$rp $c"
  188. X. UU/myread
  189. Xcase "$ans" in
  190. X'') ;;
  191. X*) : in case they cannot read
  192. X    eval $ans;;
  193. Xesac
  194. X. ./config.sh
  195. X
  196. Xecho " "
  197. Xecho "Doing variable substitutions on .SH files..."
  198. Xset x `awk '{print $1}' <MANIFEST | $grep '\.SH'`
  199. Xshift
  200. Xcase $# in
  201. X0) set x *.SH; shift;;
  202. Xesac
  203. Xif test ! -f $1; then
  204. X    shift
  205. Xfi
  206. Xfor file in $*; do
  207. X    case "$file" in
  208. X    */*)
  209. X    dir=`$expr X$file : 'X\(.*\)/'`
  210. X    file=`$expr X$file : 'X.*/\(.*\)'`
  211. X    (cd $dir && . $file)
  212. X    ;;
  213. X    *)
  214. X    . $file
  215. X    ;;
  216. X    esac
  217. Xdone
  218. Xif test -f config.h.SH; then
  219. X    if test ! -f config.h; then
  220. X    : oops, they left it out of MANIFEST, probably, so do it anyway.
  221. X    . config.h.SH
  222. X    fi
  223. Xfi
  224. X
  225. Xif $contains '^depend:' Makefile >/dev/null 2>&1; then
  226. X    dflt=n
  227. X    $cat <<EOM
  228. X
  229. XNow you need to generate make dependencies by running "make depend".
  230. XYou might prefer to run it in background: "make depend > makedepend.out &"
  231. XIt can take a while, so you might not want to run it right now.
  232. X
  233. XEOM
  234. X    rp="Run make depend now? [$dflt]"
  235. X    $echo $n "$rp $c"
  236. X    . UU/myread
  237. X    case "$ans" in
  238. X    y*) make depend
  239. X    echo "Now you must run a make."
  240. X    ;;
  241. X    *)  echo "You must run 'make depend' then 'make'."
  242. X    ;;
  243. X    esac
  244. Xelif test -f Makefile; then
  245. X    echo " "
  246. X    echo "Now you must run a make."
  247. Xelse
  248. X    echo "Done."
  249. Xfi
  250. X
  251. X$rm -f kit*isdone
  252. X: the following is currently useless
  253. Xcd UU && $rm -f $rmlist
  254. X: since this removes it all anyway
  255. Xcd .. && $rm -rf UU
  256. X: end of Configure
  257. SHAR_EOF
  258. echo "File Configure is complete"
  259. chmod 0555 Configure || echo "restore of Configure fails"
  260. echo "x - extracting config.h.SH (Text)"
  261. sed 's/^X//' << 'SHAR_EOF' > config.h.SH &&
  262. Xcase $CONFIG in
  263. X'')
  264. X    if test ! -f config.sh; then
  265. X    ln ../config.sh . || \
  266. X    ln ../../config.sh . || \
  267. X    ln ../../../config.sh . || \
  268. X    (echo "Can't find config.sh."; exit 1)
  269. X    echo "Using config.sh from above..."
  270. X    fi
  271. X    . ./config.sh
  272. X    ;;
  273. Xesac
  274. Xecho "Extracting config.h (with variable substitutions)"
  275. Xsed <<!GROK!THIS! >config.h -e 's!^#undef!/\*#undef!'
  276. X/* config.h
  277. X * This file was produced by running the config.h.SH script, which
  278. X * gets its values from config.sh, which is generally produced by
  279. X * running Configure.
  280. X *
  281. X * Feel free to modify any of this as the need arises.  Note, however,
  282. X * that running config.h.SH again will wipe out any changes you've made.
  283. X * For a more permanent change edit config.sh and rerun config.h.SH.
  284. X */
  285. X
  286. X
  287. X/* EUNICE:
  288. X *    This symbol, if defined, indicates that the program is being compiled
  289. X *    under the EUNICE package under VMS.  The program will need to handle
  290. X *    things like files that don't go away the first time you unlink them,
  291. X *    due to version numbering.  It will also need to compensate for lack
  292. X *    of a respectable link() command.
  293. X */
  294. X/* VMS:
  295. X *    This symbol, if defined, indicates that the program is running under
  296. X *    VMS.  It is currently only set in conjunction with the EUNICE symbol.
  297. X */
  298. X#$d_eunice    EUNICE        /**/
  299. X#$d_eunice    VMS        /**/
  300. X
  301. X/* CPPSTDIN:
  302. X *    This symbol contains the first part of the string which will invoke
  303. X *    the C preprocessor on the standard input and produce to standard
  304. X *    output.     Typical value of "cc -E" or "/lib/cpp".
  305. X */
  306. X/* CPPMINUS:
  307. X *    This symbol contains the second part of the string which will invoke
  308. X *    the C preprocessor on the standard input and produce to standard
  309. X *    output.  This symbol will have the value "-" if CPPSTDIN needs a minus
  310. X *    to specify standard input, otherwise the value is "".
  311. X */
  312. X#define CPPSTDIN "$cppstdin"
  313. X#define CPPMINUS "$cppminus"
  314. X
  315. X/* index:
  316. X *    This preprocessor symbol is defined, along with rindex, if the system
  317. X *    uses the strchr and strrchr routines instead.
  318. X */
  319. X/* rindex:
  320. X *    This preprocessor symbol is defined, along with index, if the system
  321. X *    uses the strchr and strrchr routines instead.
  322. X */
  323. X#$d_index    index strchr    /* cultural */
  324. X#$d_index    rindex strrchr    /*  differences? */
  325. X
  326. X/* MKDIR:
  327. X *    This symbol, if defined, indicates that the mkdir routine is available
  328. X *    to create directories.  Otherwise you should fork off a new process to
  329. X *    exec /bin/mkdir.
  330. X */
  331. X#$d_mkdir    MKDIR        /**/
  332. X
  333. X/* PORTABLE:
  334. X *    This symbol, if defined, indicates to the C program that it should
  335. X *    not assume that it is running on the machine it was compiled on.
  336. X *    The program should be prepared to look up the host name, translate
  337. X *    generic filenames, use PATH, etc.
  338. X */
  339. X#$d_portable    PORTABLE    /**/
  340. X
  341. X/* SYMLINK:
  342. X *    This symbol, if defined, indicates that the symlink routine is available
  343. X *    to create symbolic links.
  344. X */
  345. X#$d_symlink    SYMLINK        /**/
  346. X
  347. X/* vfork:
  348. X *    This symbol, if defined, remaps the vfork routine to fork if the
  349. X *    vfork() routine isn't supported here.
  350. X */
  351. X#$d_vfork    vfork fork    /**/
  352. X
  353. X/* VOIDSIG:
  354. X *    This symbol is defined if this system declares "void (*signal())()" in
  355. X *    signal.h.  The old way was to declare it as "int (*signal())()".  It
  356. X *    is up to the package author to declare things correctly based on the
  357. X *    symbol.
  358. X */
  359. X#$d_voidsig    VOIDSIG     /**/
  360. X
  361. X/* WHOAMI:
  362. X *    This symbol, if defined, indicates that the program may include
  363. X *    whoami.h.
  364. X */
  365. X#$d_whoami    WHOAMI        /**/
  366. X
  367. X/* ENABLE_CALENDAR:
  368. X *    This symbol, if defined, indicates that the calendar feature
  369. X *    should be supported.
  370. X */
  371. X#$d_calendar    ENABLE_CALENDAR    /**/
  372. X#define dflt_calendar_file    "$calendar"    
  373. X
  374. X/* CRYPT:
  375. X *    This symbol, if defined, indicates that the crypt routine is available
  376. X *    to encrypt passwords and the like.
  377. X */
  378. X#$d_crypt    CRYPT        /**/
  379. X
  380. X/* NEED_CUSERID:
  381. X *    This symbol, if defined, means to include our own cuserid().
  382. X */
  383. X#$d_cuserid NEED_CUSERID        /**/
  384. X
  385. X/* LOCK_BY_FLOCK
  386. X *    This symbol, if defined, indicates that the flock mailbox locking should also be used.
  387. X */
  388. X#$d_flock    LOCK_BY_FLOCK        /**/
  389. X
  390. X/* GETHOSTNAME:
  391. X *    This symbol, if defined, indicates that the C program may use the
  392. X *    gethostname() routine to derive the host name.  See also DOUNAME
  393. X *    and PHOSTNAME.
  394. X */
  395. X/* DOUNAME:
  396. X *    This symbol, if defined, indicates that the C program may use the
  397. X *    uname() routine to derive the host name.  See also GETHOSTNAME and
  398. X *    PHOSTNAME.
  399. X */
  400. X/* PHOSTNAME:
  401. X *    This symbol, if defined, indicates that the C program may use the
  402. X *    contents of PHOSTNAME as a command to feed to the popen() routine
  403. X *    to derive the host name.  See also GETHOSTNAME and DOUNAME.
  404. X */
  405. X/* HOSTCOMPILED:
  406. X *    This symbol, if defined, indicated that the host name is compiled
  407. X *    in from the string hostname
  408. X */
  409. X#$d_gethname    GETHOSTNAME    /**/
  410. X#$d_douname    DOUNAME        /**/
  411. X#$d_phostname    PHOSTNAME "$phostname"    /**/
  412. X#$d_host_comp    HOSTCOMPILED    /**/
  413. X
  414. X/* GETOPT:
  415. X *    This symbol, if defined, indicates that the getopt() routine exists.
  416. X */
  417. X#$d_getopt    GETOPT        /**/
  418. X
  419. X/* USE_DBM
  420. X *    This symbol, when defined, indicates that the pathalias file
  421. X *    is available as a dbm file.  There is nothing to include.
  422. X */
  423. X#$d_havedbm    USE_DBM    /**/
  424. X
  425. X/* HAVETERMLIB:
  426. X *    This symbol, when defined, indicates that termlib-style routines
  427. X *    are available.  There is nothing to include.
  428. X */
  429. X#$d_havetlib    HAVETERMLIB    /**/
  430. X
  431. X/* INTERNET:
  432. X *    This symbol, if defined, indicates that there is a mailer available
  433. X *    which supports internet-style addresses (user@site.domain).
  434. X */
  435. X#$d_internet    INTERNET    /**/
  436. X
  437. X/* ALLOW_MAILBOX_EDITING:
  438. X *    This symbol, if defined, indicates that the E)dit mailbox
  439. X *    function is to be allowed.
  440. X */
  441. X#$d_mboxedit    ALLOW_MAILBOX_EDITING    /**/
  442. X
  443. X/* AUTO_BACKGROUND:
  444. X *    This symbol, if defined, indicates that newmail should go to
  445. X *    the background automatically.
  446. X */
  447. X#$d_newauto AUTO_BACKGROUND /**/
  448. X
  449. X/* OPTIMIZE_RETURN:
  450. X *    This symbol, if defined, indicates that Elm should optimize the
  451. X *    return address of aliases.
  452. X */
  453. X#$d_optreturn OPTIMIZE_RETURN /**/
  454. X
  455. X/* LOOK_CLOSE_AFTER_SEARCH:
  456. X *    This symbol, if defined, indicates that the pathalias route
  457. X *    should be used for machines we talk to directly.
  458. X */
  459. X/* USE_UUNAME:
  460. X *    This symbol, if defined, indicates that uuname should
  461. X *    be used before trying to read the Systems or L.sys file.
  462. X */
  463. X/* DONT_TOUCH_ADDRESSES:
  464. X *    This symbol, if defined, indicates that elm should not
  465. X *    touch outbound addresses
  466. X */
  467. X/* DONT_ADD_FROM:
  468. X *    This symbol, if defined, indicates that elm should not adD
  469. X *    the From: header
  470. X */
  471. X/* USE_DOMAIN:
  472. X *    This symbol, if defined, indicates that elm should add
  473. X *    the domain name to our address
  474. X */
  475. X/* NOCHECK_VALIDNAME:
  476. X *    This symbol, if defined, indicates that elm should not
  477. X *    check the addresses against mailboxes on this system.
  478. X */
  479. X#$d_pafirst    LOOK_CLOSE_AFTER_SEARCH /**/
  480. X#$d_useuuname    USE_UUNAME /**/
  481. X#$d_notouchadd    DONT_TOUCH_ADDRESSES /**/
  482. X#$d_noaddfrom    DONT_ADD_FROM /**/
  483. X#$d_usedomain    USE_DOMAIN /**/
  484. X#$d_nocheckvalid NOCHECK_VALIDNAME    /**/
  485. X
  486. X/* REMOVE_AT_LAST:
  487. X *    This symbol, if defined, tells the C code to remove the lock
  488. X *    file on lock failure.
  489. X */
  490. X/* MAX_ATTEMPTS:
  491. X *    This symbol defines to the C code the number of times to try
  492. X *    locking the mail file.
  493. X */
  494. X#$d_remlock REMOVE_AT_LAST    /**/
  495. X#define MAX_ATTEMPTS    $maxattempts
  496. X
  497. X/* RENAME:
  498. X *    This symbol, if defined, indicates that the rename() routine exists.
  499. X */
  500. X#$d_rename    RENAME        /**/
  501. X
  502. X/* SAVE_GROUP_MAILBOX_ID:
  503. X *    This symbol, if defined, indica;es that Elm needs to restore the
  504. X *    group id of the file, as it is running setgid.
  505. X */
  506. X#$d_setgid SAVE_GROUP_MAILBOX_ID    /**/
  507. X
  508. X/* STRINGS:
  509. X *    This symbol, if defined, indicates that the file strings.h
  510. X *    should be included not string.h
  511. X */
  512. X/* PWDINSYS:
  513. X *    This symbol, if defined, indicates that the file pwd.h
  514. X *    is in the sys sub directory
  515. X */
  516. X#$d_strings    STRINGS        /**/
  517. X#$d_pwdinsys    PWDINSYS    /**/
  518. X
  519. X/* TEMPNAM:
  520. X *    This symbol, if defined, indicates that the tempnam() routine exists.
  521. X */
  522. X#$d_tempnam    TEMPNAM        /**/
  523. X
  524. X/* TERMIO:
  525. X *    This symbol, if defined, indicates that the program should include
  526. X *    termio.h rather than sgtty.h.  There are also differences in the
  527. X *    ioctl() calls that depend on the value of this symbol.
  528. X */
  529. X#$d_termio    TERMIO        /**/
  530. X
  531. X/* TMINSYS:
  532. X *    This symbol is defined if this system declares "struct tm" in
  533. X *    in <sys/time.h> rather than <time.h>.  We can't just say
  534. X *    -I/usr/include/sys because some systems have both time files, and
  535. X *    the -I trick gets the wrong one.
  536. X */
  537. X/* TZ_MINUTESWEST:
  538. X *    This symbol is defined if this system uses tz_minutes west
  539. X *    in time.h instead of timezone.  Only for BSD Systems
  540. X */
  541. X#$d_tminsys    TMINSYS     /**/
  542. X#$d_tz_min    TZ_MINUTESWEST     /**/
  543. X
  544. X/* USE_EMBEDDED_ADDRESSES:
  545. X *    This symbol, if defined, indicates that replyto: and from:
  546. X *    headers can be trusted.
  547. X */
  548. X#$d_useembed USE_EMBEDDED_ADDRESSES     /**/
  549. X
  550. X/* NOUTIMBUF:
  551. X *    This symbol, if defined, means to include our own struct utimbuf.
  552. X */
  553. X#$d_utimbuf NOUTIMBUF        /**/
  554. X
  555. X/* DEFEDITOR:
  556. X *    This symbol contains the name of the default editor.
  557. X */
  558. X#define DEFEDITOR "$defeditor"        /**/
  559. X
  560. X/* MAX_SALIASES:
  561. X *    This symbol defines the number of system wide aliases allowed.
  562. X */
  563. X/* MAX_UALIASES:
  564. X *    This symbol defines the number of per user aliases allowed.
  565. X */
  566. X#define    MAX_SALIASES    $maxsysalias    /* number of system aliases allowed      */
  567. X#define    MAX_UALIASES    $maxuseralias    /* number of user aliases allowed      */
  568. X
  569. X/* HOSTNAME:
  570. X *    This symbol contains name of the host the program is going to run on.
  571. X *    The domain is not kept with hostname, but must be gotten from MYDOMAIN.
  572. X *    The dot comes with MYDOMAIN, and need not be supplied by the program.
  573. X *    If gethostname() or uname() exist, HOSTNAME may be ignored.
  574. X */
  575. X/* MYDOMAIN:
  576. X *    This symbol contains the domain of the host the program is going to
  577. X *    run on.  The domain must be appended to HOSTNAME to form a complete
  578. X *    host name.  The dot comes with MYDOMAIN, and need not be supplied by
  579. X *    the program.  If the host name is derived from PHOSTNAME, the domain
  580. X *    may or may not already be there, and the program should check.
  581. X */
  582. X#define HOSTNAME "$hostname"        /**/
  583. X#define MYDOMAIN "$mydomain"        /**/
  584. X
  585. X/* PASSNAMES:
  586. X *    This symbol, if defined, indicates that full names are stored in
  587. X *    the /etc/passwd file.
  588. X */
  589. X/* BERKNAMES:
  590. X *    This symbol, if defined, indicates that full names are stored in
  591. X *    the /etc/passwd file in Berkeley format (name first thing, everything
  592. X *    up to first comma, with & replaced by capitalized login id, yuck).
  593. X */
  594. X/* USGNAMES:
  595. X *    This symbol, if defined, indicates that full names are stored in
  596. X *    the /etc/passwd file in USG format (everything after - and before ( is
  597. X *    the name).
  598. X */
  599. X#$d_passnames    PASSNAMES /*  (undef to take name from ~/.fullname) */
  600. X#$d_berknames    BERKNAMES /* (that is, ":name,stuff:") */
  601. X#$d_usgnames    USGNAMES  /* (that is, ":stuff-name(stuff):") */
  602. X
  603. X/* PREFSHELL:
  604. X *    This symbol contains the full name of the preferred user shell on this
  605. X *    system.  Usual values are /bin/csh, /bin/ksh, /bin/sh.
  606. X */
  607. X#define PREFSHELL "$prefshell"        /**/
  608. X
  609. X/* XENIX:
  610. X *    This symbol, if defined, indicates this is a Xenix system,
  611. X *    for knocking  out the far keyword in selected places.
  612. X */
  613. X/* BSD:
  614. X *    This symbol, if defined, indicates this is a BSD type system,
  615. X */
  616. X#$d_xenix    XENIX    /**/
  617. X#$d_bsd    BSD    /**/
  618. X
  619. X!GROK!THIS!
  620. SHAR_EOF
  621. chmod 0444 config.h.SH || echo "restore of config.h.SH fails"
  622. echo "x - extracting Makefile.SH (Text)"
  623. sed 's/^X//' << 'SHAR_EOF' > Makefile.SH &&
  624. Xcase $CONFIG in
  625. X'')
  626. X    if test ! -f config.sh; then
  627. X    ln ../config.sh . || \
  628. X    ln ../../config.sh . || \
  629. X    ln ../../../config.sh . || \
  630. X    (echo "Can't find config.sh."; exit 1)
  631. X    fi
  632. X    . ./config.sh
  633. X    ;;
  634. Xesac
  635. Xcase "$0" in
  636. X*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
  637. Xesac
  638. X
  639. Xcase "$d_symlink" in
  640. X*define*) sln='ln -s' ;;
  641. X*) sln='ln';;
  642. Xesac
  643. X
  644. Xecho "Extracting Makefile (with variable substitutions)"
  645. Xcat >Makefile <<!GROK!THIS!
  646. X#
  647. X# $Id: Makefile.SH,v 2.22 89/03/25 21:44:45 syd Exp $
  648. X#
  649. X#  Makefile for the entire ELM mail system
  650. X#
  651. X#         (C) Copyright 1986, 1987, by Dave Taylor
  652. X#         (C) Copyright 1988, 1989, USENET Community Trust
  653. X#
  654. X#  $Log:    Makefile.SH,v $
  655. X# Revision 2.22  89/03/25  21:44:45  syd
  656. X# Initial 2.2 Release checkin
  657. X# 
  658. X#
  659. X
  660. X#    Variables established by Configure
  661. XCAT        =    $cat
  662. XGREP        =    $grep
  663. XECHO        =    $echo
  664. XMAKE        =    $make
  665. XPR        =    $pr
  666. XSHAR        =    $shar -s 60000
  667. XSLEEP        =    $sleep
  668. XTAR        =    $tar
  669. XTAPE        =    $rmttape
  670. X
  671. X!GROK!THIS!
  672. Xcat >>Makefile <<'!NO!SUBS!'
  673. X#    Other variables
  674. XSHELL            =    /bin/sh
  675. XSOURCE_FILES        =    `$(GREP) -v 'doc/' MANIFEST`
  676. XDISTRIBUTED_FILES    =    `$(CAT) MANIFEST`
  677. X
  678. X
  679. X# Targets
  680. X#    Give default target first and alone
  681. Xdefault_target:    all
  682. X
  683. X#    Targets that are simply executed in each subordinate makefile as is
  684. Xall install uninstall lint clean:
  685. X        cd src; $(MAKE) -$(MAKEFLAGS) $@
  686. X        cd utils; $(MAKE) -$(MAKEFLAGS) $@
  687. X        cd filter; $(MAKE) -$(MAKEFLAGS) $@
  688. X        cd doc; $(MAKE) -$(MAKEFLAGS) $@
  689. X
  690. X#    Targets that apply to all elm at once
  691. Xlisting:
  692. X        @$(ECHO) "Making source listing in file LISTING."
  693. X        @$(PR) -n -f $(SOURCE_FILES) > LISTING
  694. X
  695. X#    This is the only target that gets installed even if not out-of-date
  696. X#    with respect the files from which it is installed.
  697. Xrmt-install:    rmt-defined
  698. X        @($(ECHO) "Warning: This assumes you have already installed";\
  699. X          $(ECHO) "ELM on the remote machine <$(REMOTE)>. If this is";\
  700. X          $(ECHO) "not the case, interrupt this process quickly!";\
  701. X          $(SLEEP) 10;)
  702. X        cd src; $(MAKE) -$(MAKEFLAGS) REMOTE=$$(REMOTE) $@
  703. X        cd filter; $(MAKE) -$(MAKEFLAGS) REMOTE=$$(REMOTE) $@
  704. X        cd utils; $(MAKE) -$(MAKEFLAGS) REMOTE=$$(REMOTE) $@
  705. X        cd doc; $(MAKE) -$(MAKEFLAGS) REMOTE=$$(REMOTE) $@
  706. X
  707. Xrmt-defined:
  708. X    @(if [ "$(REMOTE)" = "" ];\
  709. X      then\
  710. X        $(ECHO) "You need to define 'REMOTE' as the remote file system";\
  711. X        $(ECHO) "for this particular command. The easiest way to do this";\
  712. X        $(ECHO) "to type:";\
  713. X        $(ECHO) "        make REMOTE=<remote file system> rmt-install";\
  714. X        exit 1;\
  715. X    fi);
  716. X
  717. Xshar:
  718. X        $(SHAR) $(DISTRIBUTED_FILES)
  719. X
  720. Xtar:
  721. X        $(TAR) cvf $(TAPE) $(DISTRIBUTED_FILES)
  722. X
  723. X#    Targets that are really in subordinate make files
  724. Xdocumentation:
  725. X    cd doc; $(MAKE) -$(MAKEFLAGS) $@
  726. X
  727. Xelm:
  728. X    cd src; $(MAKE) -$(MAKEFLAGS) all
  729. X
  730. X#    The dummy dependency here prevents make from thinking the target is the
  731. X#    filter directory that sits in the current directory, rather than
  732. X#    an abstract target.
  733. Xfilter: _filter
  734. X
  735. X_filter:
  736. X    cd filter; $(MAKE) -$(MAKEFLAGS) all
  737. X
  738. Xutils:
  739. X    cd utils; $(MAKE) -$(MAKEFLAGS) all
  740. X
  741. X!NO!SUBS!
  742. SHAR_EOF
  743. chmod 0444 Makefile.SH || echo "restore of Makefile.SH fails"
  744. echo "x - extracting doc/Alias.guide (Text)"
  745. sed 's/^X//' << 'SHAR_EOF' > doc/Alias.guide &&
  746. X\" @(#)$Id: Alias.guide,v 2.8 89/03/25 21:44:47 syd Exp $
  747. X\"
  748. X\"  A guide to the ELM alias system and so on.
  749. X\"  format with:
  750. X\"      tbl Alias.guide | troff -mn > Alias.format'
  751. X\"
  752. X\"  (C) Copyright 1986, 1987 Dave Taylor
  753. X\"  (C) Copyright 1988, 1989 USENET Community Trust
  754. X\"  Elm is now in the public trust. Bug reports, comments, suggestions, flames
  755. X\"  etc. should go to:
  756. X\"    Syd Weinstein        elm@dsinc.UUCP (dsinc!elm)
  757. X\"
  758. X\"  $Log:    Alias.guide,v $
  759. X\" Revision 2.8  89/03/25  21:44:47  syd
  760. X\" Initial 2.2 Release checkin
  761. X\" 
  762. X\"  
  763. X.tm Have we been run through "tbl" first?? I hope so!
  764. X.po 1i
  765. X.ds h0
  766. X.ds h1
  767. X.ds h2
  768. X.ds f0
  769. X.ds f1
  770. X.ds f2
  771. X.nr Hy 1
  772. X.nr Pt 1
  773. X.nr Pi 0
  774. X.lg 0
  775. X.rs
  776. X.za
  777. X.sp |3.0i
  778. X.ce 99
  779. X.ps 20
  780. X.ss 18
  781. X.vs 12
  782. X\f3The Elm Alias System Users Guide\f1
  783. X.sp 4
  784. X.ps 12
  785. X.ss 12
  786. X\f2What aliases are and how to use them
  787. Xin the \f3Elm\fP mail system\f1
  788. X.sp 2
  789. XDave Taylor
  790. X.sp 
  791. XHewlett-Packard Laboratories
  792. X1501 Page Mill Road
  793. XPalo Alto CA
  794. X94304
  795. X.sp 4
  796. Xemail:  taylor\s-1@\s+1hplabs.HP.COM  or  hplabs\s-1!\s+1taylor
  797. X.sp 4
  798. X>>> Elm is now in the public trust. Bug reports, comments, etc. to: <<<
  799. X.sp
  800. XSyd Weinstein
  801. XDatacomp Systems, Inc.
  802. X3837 Byron Road
  803. XHuntingdon Valley, PA 19006-2320
  804. X.sp
  805. Xemail: elm\s-1@\s+1dsinc.UUCP  or  dsinc\s-1!\s+1elm
  806. X.sp 2
  807. X\s18\f3\(co\f1\s12 Copyright 1986, 1987 by Dave Taylor
  808. X\s18\f3\(co\f1\s12 Copyright 1988, 1989 by The USENET Community Trust
  809. X.ps 10
  810. X.ss 12
  811. X.vs 12
  812. X.bp 1
  813. X.sp 5
  814. X.ps 14
  815. X.ss 12
  816. X.vs 16
  817. X\f3The Elm Alias System Users Guide\f1
  818. X.ds h0 "Alias Users Guide
  819. X.ds h1
  820. X.ds h2 "Version 2.2
  821. X.ds f0 "April 1, 1989
  822. X.ds f1
  823. X.ds f2 "Page %
  824. X.sp
  825. X.ps 10
  826. X.ss 12
  827. X.vs 12
  828. X(Version 2.2)
  829. X.sp 2
  830. XDave Taylor
  831. X.sp
  832. XHewlett-Packard Laboratories
  833. X1501 Page Mill Road
  834. XPalo Alto CA
  835. X94304
  836. X.sp 
  837. Xemail: taylor\s-1@\s+1hplabs.HP.COM  or  hplabs\s-1!\s+1taylor
  838. X.sp 2
  839. X>>> Elm is now in the public trust. Bug reports, comments, etc. to: <<<
  840. X.sp
  841. XSyd Weinstein
  842. XDatacomp Systems, Inc.
  843. X3837 Byron Road
  844. XHuntingdon Valley, PA 19006-2320
  845. X.sp
  846. Xemail: elm\s-1@\s+1dsinc.UUCP  or  dsinc\s-1!\s+1elm
  847. X.sp 2
  848. XApril 1, 1989
  849. X.ce 0
  850. X.sp 3
  851. X.pg
  852. XThis document is intended as a supplement to the \f2Elm Users Guide\f1
  853. Xand is only of interest to those users desiring more knowledge
  854. Xabout how aliases work and how to create strange and exciting
  855. Xaliases for their systems (okay, so maybe it's not \f2that\f1 exciting!)
  856. X.sp
  857. X.pg
  858. XThis document is broken up into the following sections;
  859. Xuser aliases,
  860. Xgroup aliases,
  861. Xsystem aliases,
  862. Xediting and installing new aliases,
  863. Xthe host routing database,
  864. Xthe domain routing database,
  865. Xgeneral warnings and other chitchat.
  866. X.sp
  867. X.hn 1 User Aliases
  868. X
  869. XThe most simple type of aliases in the \f3Elm\f1 system are individual
  870. Xuser aliases.  These are made up of three parts;
  871. X.nf
  872. X    \f2aliasname list\f1  =  \f2username\f1  =  \f2address\f1 \s-2\u1\d\s0
  873. X.fn
  874. X1. Notice that the alias separator has moved from being a colon 
  875. Xcharacter (`:') to the equals sign (`=').
  876. XThis is due to the requirements of the X.400 addressing scheme.
  877. X.ef
  878. X.fi
  879. XWhere the \f2aliasname list\f1 is either a single aliasname\s-2\u2\d\s0
  880. X.fn
  881. X2. aliasnames can be any alphanumeric character, a `-' character,
  882. Xor an underscore (`_').
  883. X.ef
  884. Xor a list of aliasnames separated by commas.
  885. X.pg
  886. X\f2Username\f1 is used to indicate the full `real name' of the user.  
  887. XFor example, if you had an alias for `taylor' to get to me, the 
  888. X\f2username\f1 field would contain `Dave Taylor' or 
  889. Xperhaps `Dave Taylor at HP'
  890. Xor some other permutation.  \f3Elm\f1
  891. Xuses this information to add the users full name to the addresses of 
  892. Xoutbound mail to get more readable addresses.  
  893. X.pg
  894. X\f2Address\f1 is either the users full electronic mail address or, if
  895. Xthe machine routing database is installed, the minimum address needed
  896. Xto specify the destination.  For example, say our routing database
  897. Xcontained information on how to get to machine `hp-sdd' and I wanted
  898. Xto have an address for my friend Ken there \(em I could have his address
  899. Xspecified as simply `ken@hp-sdd' (or alternatively `hp-sdd!ken' since
  900. Xthe two are functionally equivalent).
  901. X.sp
  902. X.pg 0
  903. XLet's get on to some examples, shall we?
  904. X.sp
  905. XConsider this excerpt from my own \f2.elm/aliases.text\f1 file;
  906. X
  907. X.nf
  908. X.ft CW
  909. X.in .5i
  910. X.ta \w'frank,minjarez 'u \w'frank,minjarez = Frank Minjarez 'u
  911. X# Mail aliases for Dave Taylor
  912. X# Friends from UCSD
  913. Xaddie    = Addie Silva    = addie@hp-sdd.SDD.HP.COM
  914. Xfrank,minjarez    = Frank Minjarez    = Minjarez.Verify@dockmaster.arpa
  915. Xpizzini    = Ken Pizzini    = hplabs!ucbvax!ucdavis!pai!ken
  916. X.ft 1
  917. X
  918. X.in 0
  919. X.fi
  920. XNote that the alias for Frank Minjarez has two \f2aliasnames\f1 associated
  921. Xwith it,
  922. X.ft CW
  923. Xfrank\f1 and
  924. X.ft CW
  925. Xminjarez\f1.
  926. XAlso notice that the first and second aliases
  927. Xuse the ARPA Internet style naming convention of \f2user@machine\f1 
  928. Xwhereas the third uses the UUCP notation of \f2machine!user\f1.
  929. X.pg
  930. XFor the most part, the notational format is transparent within the
  931. Xalias file \(em the only time it \f2does\f1 make a difference 
  932. Xis if you have to specify more than the machine that the user is
  933. Xreceiving mail on (as in the third example above).  
  934. X.pg
  935. XSuffice to say that if you must specify any sort of uucp route
  936. Xthat you should use the uucp notation as much as possible to ensure
  937. Xthat the system expands the correct machine name.  Similarly, if
  938. Xyou're bouncing mail through different ARPA Internet sites (to
  939. Xget to a foreign system, as in the example below) you should use the
  940. Xnotation that system expects:
  941. X
  942. X.ft CW
  943. X.ti .5i
  944. X    listserv%byuadmin.BITNET@rugters.edu
  945. X.ft 1
  946. X.sp
  947. X.hn 1 Group Aliases
  948. X
  949. XAfter the confusion of user aliases, group aliases are even more 
  950. Xfun!  For the most part the notation is very similar;
  951. X
  952. X    \f2aliasname list\f1   =   \f2groupname\f1   =   \f2list of people\f1
  953. X
  954. XWhere \f2aliasname list\f1 and \f2groupname\f1 are exactly equivalent
  955. Xto the corresponding fields in user aliases.
  956. X.pg
  957. XThe interesting part is the \f2list of people\f1 field; this
  958. Xfield is actually in the same notation as the aliasname list,
  959. Xso it's really quite easy to create.
  960. XIt's best to illustrate by example:
  961. X
  962. X.ft CW
  963. X.nf
  964. X.in .5i
  965. Xfriends, mypals = The Gang of Six = joe, larry, mary, joanna,
  966. X\h'\w'friends, mypals = The Gang of Six = 'u'nancy, michael
  967. X.ft 1
  968. X
  969. X.in 0
  970. X.fi
  971. X(Notice that you can continue onto as many lines as you'd like so
  972. Xlong as each additional line start with either a \s8SPACE\s10 or a \s8TAB\s10
  973. Xcharacter)
  974. X.pg
  975. XThe major limitation with group aliases is that each of the
  976. Xpeople in the list must be a \f2previously defined alias\f1
  977. Xor a valid mail address on the current machine.
  978. X.pg
  979. XWhat does this mean?  That the following excerpt from an alias file:
  980. X
  981. X.in .5i
  982. X.ft CW
  983. X.nf
  984. X.ta \w'hawaii 'u \w'hawaii = The Hawaiian Twins 'u
  985. Xhawaii    = The Hawaiian Twins    = joe@cs.rit.edu, maoa
  986. Xmaoa    = Maoa Lichtenski Jr    = maoa@Hawaii.cs.uh.edu
  987. X.ft 1
  988. X
  989. X.in 0
  990. X.fi
  991. Xwill fail for two reasons \(em not only does the group \f2list of people\f1
  992. Xcontain a complex address, but it also contains an aliasname that is 
  993. Xdefined \f2further on\f1 in
  994. Xthe \f2.elm/aliases.text\f1 file.
  995. X.pg
  996. XThe correct way to have the previous aliases in the file are to have them 
  997. Xorganized like:
  998. X
  999. X.ft CW
  1000. X.in .5i
  1001. X.ta \w'hawaii 'u \w'hawaii = The Hawaiian Twins 'u
  1002. X.nf
  1003. Xjoe    = Joe Lichtenski    = joe@cs.rit.edu
  1004. Xmaoa    = Maoa Lichtenski Jr    = maoa@Hawaii.cs.uh.edu
  1005. Xhawaii    = The Hawaiian Twins    = joe, maoa
  1006. X.ft 1
  1007. X
  1008. X.in 0
  1009. X.fi
  1010. Xwhich will then work correctly.
  1011. X.sp
  1012. XFortunately, while this seems fairly picky, when you run \f2newalias\f1
  1013. Xto install the new aliases, you'll get relevant and meaningful
  1014. Xerror messages to help you fix your aliases up correctly.
  1015. X.sp
  1016. X.hn 1 System Aliases
  1017. X
  1018. XSystem aliases are functionally equivalent to the individual \f3Elm\f1 
  1019. Xalias lists each \f3Elm\f1 user has (both user aliases and group aliases) 
  1020. Xbut are \f2read only\f1 for everyone but the \f3Elm\f1 administrator.  The 
  1021. Xformat of the file is identical to the users file, and the only difference is
  1022. Xthat this file is expected to be located in the directory that contains
  1023. Xthe \f2system_hash_file\f1 and \f2system_data_file\f1 files (see the
  1024. X\f2Elm Configuration Guide\f1 for more details on these variables).
  1025. X.pg
  1026. XSimply create the system alias file in the specified directory
  1027. Xas you would a normal alias file, and install it the same way (see the
  1028. Xfollowing section for more details on that).  
  1029. X.pg
  1030. XVoila!!
  1031. X.sp
  1032. X.hn 1 Editing and Installing New Aliases
  1033. X
  1034. XTo install new aliases, you need merely to create, or modify,
  1035. Xthe file \f2.elm/aliases.text\f1 until you're
  1036. Xsatisfied with it and it meets the requirements discussed above.
  1037. XYou can then try to install it with the command;
  1038. X
  1039. X    $ \f3newalias\f1
  1040. X
  1041. Xwhich will either report back the number of aliases installed 
  1042. Xor any errors encountered trying to parse and store the
  1043. Xgiven alias list.
  1044. X.pg
  1045. XNote that blank lines are no problem and that comments are not only
  1046. Xallowed but actually encouraged, and must have `\f3#\f1' as the first
  1047. Xcharacter of each comment line.
  1048. X.sp
  1049. XFinally, if you find that you're hitting the ``Too many aliases'' error, 
  1050. Xthen you'll need to reconfigure the entire \f3Elm\f1 system (again,
  1051. Xsee \f2The Elm Configuration Guide\f1).
  1052. X.sp
  1053. X.hn 1 The Hostname Routing Database
  1054. X
  1055. XFloating about on the various networks is a rather nifty program by
  1056. Xa number of people, including Peter Honeyman and Steve Bellovin, 
  1057. Xcalled \f2pathalias\f1.  What this software does is 
  1058. Xtake the Usenet articles in the group ``comp.mail.maps'' and change
  1059. Xthem into a file of the form;
  1060. X
  1061. X    \f2hostname\f1    <tab>    \f2address\f1
  1062. X
  1063. Xwhich is then sorted alphabetically and stored in the file
  1064. Xpointed to by \f2pathfile\f1 for \f3Elm\f1 (and other 
  1065. Xprograms) to use.
  1066. X.pg
  1067. XIf you don't have the program, or don't want to use it, you can 
  1068. Xsimulate this file by listing machines in the same format.  The
  1069. Xexact format expected is;
  1070. X
  1071. X    \f2hostname\f1<tab>\f2machine-address\f1
  1072. X
  1073. Xwhere \f2hostname\f1 is a limited identifier (no special characters) and
  1074. Xmachine-address MUST contain the sequence `%s' (and consequently
  1075. Xany other percent signs that appear in the address must be paired)
  1076. Xso that the call in the program ``sprintf(buffer, machine-address, username)''
  1077. Xwill generate a valid return address.
  1078. X.pg
  1079. XBy way of example, here are a few entries from my own file;
  1080. X
  1081. X.ft CW
  1082. X.in .5i
  1083. X.TS
  1084. Xl l.
  1085. XHPL    %s@hplabs
  1086. XPARC    %s%Xerox.PA.COM@hplabs
  1087. Xamc-hq    %s%AMC-HQ.ARPA@hplabs
  1088. Ximsss    %s%%IMSSS%AI.STANFORD.EDU@hplabs
  1089. Xinfopro    hplabs!infopro!%s
  1090. Xinterleaf    sun!interleaf!%s
  1091. X.TE
  1092. X.ft 1
  1093. X
  1094. X.in 0
  1095. XAs you can see, the addresses can get pretty complicated.  In fact
  1096. Xit's due purely to the complexity of addresses that this file 
  1097. Xis so useful.
  1098. X.sp
  1099. X.ne 5
  1100. XSome brief examples:
  1101. X
  1102. X.in .5i
  1103. X.ft CW
  1104. X.nf
  1105. X$ \f3elm joe@HPL\f1
  1106. X.ft CW
  1107. XTo: joe@hplabs
  1108. X$ \f3elm michelle@imsss\f1
  1109. X.ft CW
  1110. XTo: michelle%IMSSS%AI.STANFORD.EDU@hplabs
  1111. X$ \f3elm fiedler@infopro\f1
  1112. X.ft CW
  1113. XTo: hplabs!infopro!fiedler
  1114. X.ft 1
  1115. X.fi
  1116. X
  1117. X.in 0
  1118. XIf you'd like further information on the \f2pathalias\f1 program, try
  1119. Xkeeping track of the entries in the netnews group \f2comp.sources.unix\f1 \(em
  1120. Xit's posted about once a year or so...
  1121. X.sp
  1122. X.hn 1 The Domain Routing Database
  1123. X
  1124. XAnother interesting feature of the 
  1125. X\f3Elm\f1 system is the shorthand domain routing database.  
  1126. XThis is the same database (in the same strange format) as used by
  1127. Xthe publically available \f2uumail\f1 program.
  1128. X.pg
  1129. XIn a nutshell, the file contains information of the form;
  1130. X
  1131. X.in .5i
  1132. X\f2domain,   path-to-gateway,  rewrite-template\f1
  1133. X.in 0
  1134. X
  1135. XThe \f2domain\f1 field must begin with a leading `.' and
  1136. Xis usually ordered in the same way as the standard
  1137. Xdomain entries (that is, ``\s8.HP.COM\s10'' not ``\s8.COM.HP\s10'').
  1138. X.pg
  1139. X\f2Path-to-gateway\f1 is routing information on how to get
  1140. Xto the particular gateway that this domain expects, and
  1141. Xalways is a machine/host name (to be found in the pathalias
  1142. Xdatabase, see the previous section) preceded by a `>' 
  1143. Xcharacter.
  1144. X.pg
  1145. X\f2Rewrite-template\f1 is the most interesting of the
  1146. Xthree, and is akin to a printf string for C.  The 
  1147. Xchanges are that instead of `%s' `%d' and so on, the
  1148. Xactual ``percent'' values represent various parts of 
  1149. Xthe address, namely;
  1150. X
  1151. X.in .5i
  1152. X.TS
  1153. Xc l.
  1154. X\f3Symbol    Represents\f1
  1155. X%U    The username in the To: address
  1156. X%N    The remote machine name
  1157. X%D    %N + domain information 
  1158. X%R    path to %N from pathalias
  1159. X%P    \f2path-to-gateway\f1 entry
  1160. X%%    The `%' character
  1161. X.TE
  1162. X.in 0
  1163. X
  1164. Xwith this very un-intuitive setup, let's look at a few entries 
  1165. Xfrom the domains database and then see how they work:
  1166. X
  1167. X.nf
  1168. X.ft CW
  1169. X.in .5i
  1170. X\&.EUR.UUCP, , , %R!%U
  1171. X\&.ATT.COM, >att, , %P!%D!%U
  1172. X\&.HP.COM, , , %R!%U
  1173. X\&.UUCP, , , %R!%U
  1174. X\&.COM, >hplabs, , %P!%U@%D
  1175. X\&.CSNET, >hplabs, , %P!18:12:00%%D@CSNET-RELAY.ARPA
  1176. X\&.EDU, >hplabs, , %P!%U@%D
  1177. X.ft 1
  1178. X.fi
  1179. X.in 0
  1180. X
  1181. X(Note the presence of a third field that is always null.
  1182. XThis is for compatibility with the \f2uumail\f1 program.
  1183. XAlso notice that there is a space after each and every comma,
  1184. Xeven if that field has an entry.)
  1185. X.pg
  1186. XTo see how it all works, let's suppose that we want to send a message
  1187. Xto `jad@cs.purdue.edu'.  This would break down into the following fields:
  1188. X
  1189. X.nf
  1190. X.in .5i
  1191. X%U = \f2jad\f1
  1192. X%N = \f2cs\f1
  1193. X%D = \f2cs.purdue.edu\f1
  1194. X.in 0
  1195. X      
  1196. X.fi
  1197. XWhen the \f3Elm\f1 program matches the \f2.edu\f1  entry
  1198. X
  1199. X.nf
  1200. X.in .5i
  1201. X.ft CW
  1202. X\&.EDU, >hplabs, , %P!%U@%D
  1203. X.ft 1
  1204. X.in 0
  1205. X
  1206. X.fi
  1207. Xthe other field instantiated would be:
  1208. X
  1209. X.nf
  1210. X.in .5i
  1211. X%P = \f2path to hplabs\f1
  1212. Xtemplate = \f2%P!%U@%D\f1
  1213. X.in 0
  1214. X.fi
  1215. X
  1216. XIf, say, our path to \f2hplabs\f1 was \f2hpcnoe!hplabs\f1, then
  1217. Xthe fully expanded address would be:
  1218. X
  1219. X.nf
  1220. X.ft CW
  1221. X.in .5i
  1222. Xhpcnoe!hplabs!jad@cs.purdue.edu
  1223. X.ft 1
  1224. X.in 0
  1225. X.fi
  1226. X
  1227. X\f1and so on.  
  1228. X.sp
  1229. XWhat does this mean to the average user?  It means that you can
  1230. Xfor the most part send mail to people on different networks by
  1231. Xsimply using their full address, including any domain information, 
  1232. Xso that mail to addresses like ``Jack@AI.MIT.EDU'' will work, 
  1233. Xa message to ``SueAnn@BBN.MAILNET'' will work and so on!
  1234. X.sp
  1235. X.hn 1 Other Stuff not Covered Yet
  1236. X
  1237. XProbably the biggest question you have in your mind right now
  1238. Xis ``But how the heck does this relate to my existing \f2Berkeley Mail\f1
  1239. Xaliases and the lower-level \f2sendmail\f1 alias system??''  Well,
  1240. Xrest assured that if you \f2really\f1 want to have
  1241. Xyour aliases down in the transport you can.  No problem.  All you'll
  1242. Xneed to do is to turn off the address validation routine in \f3Elm\f1.
  1243. X.pg
  1244. XAnd for those ex-\f2Berkeley Mail\f1 fans, you can translate your 
  1245. Xaliases into the format that \f3Elm\f1 wants by running them
  1246. Xthrough the \f2awk\f1 script listed in the appendix.
  1247. X.pg
  1248. XFinally, if you have any problems or questions, try looking in 
  1249. Xthe \f2newalias\f1 manual entry, or dropping me a line at the
  1250. X``usual'' email address.
  1251. X.bp
  1252. X.ce 99
  1253. X\f3Appendix One
  1254. XAn AWK Script for Translating Aliases from 
  1255. Xa \f2Berkeley Mail\fP ``.mailrc'' File to an \f2Elm\fP ``.elm/aliases.text'' 
  1256. XFile\f1
  1257. X.ce 0
  1258. X.sp 
  1259. X.nf
  1260. X
  1261. X.ta .5i
  1262. X.ft CW
  1263. XBEGIN { print "# Elm .elm/aliases.text file, from a .mailrc file..." 
  1264. X    print ""
  1265. X    }
  1266. Xnext_line == 1 { 
  1267. X    next_line = 0;
  1268. X    group = ""
  1269. X    for (i = 1; i <= NF; i++) {
  1270. X      if (i == NF && $i == "\\\\") sep = ""
  1271. X      else                       sep = ", "
  1272. X      if ($i == "\\\\") {
  1273. X        group = sprintf("%s,", group)
  1274. X        next_line = 1;
  1275. X      }
  1276. X      else if (length(group) > 0)
  1277. X        group = sprintf("%s%s%s", group, sep, $i);
  1278. X      else
  1279. X        group = $i;
  1280. X      }
  1281. X      print "\\t" group
  1282. X    }
  1283. X$1 ~ /[Aa]lias | [Gg]roup/ { 
  1284. X    if ( NF == 3)
  1285. X      print $2 " : user alias : " $3;
  1286. X    else {
  1287. X      group = ""
  1288. X      for (i = 3; i <= NF; i++) {
  1289. X        if (i == NF && $i == "\\\\") sep = ""
  1290. X        else        sep = ", "
  1291. X        if ($i == "\\\\") {
  1292. X          group = sprintf("%s,", group)
  1293. X          next_line = 1;
  1294. X        }
  1295. X        else if (length(group) > 0) 
  1296. X          group = sprintf("%s%s%s", group, sep, $i);
  1297. X        else
  1298. X          group = $i;
  1299. X        }
  1300. X        print $2 " : group alias : " group;
  1301. X      }
  1302. X    }
  1303. X
  1304. X.ft 1
  1305. X.fi
  1306. XNote: this script is contained in the release under the name ``mailrc.awk''
  1307. Xin the utilities directory ``utils''.
  1308. SHAR_EOF
  1309. chmod 0444 doc/Alias.guide || echo "restore of doc/Alias.guide fails"
  1310. echo "x - extracting doc/Config.guid (Text)"
  1311. sed 's/^X//' << 'SHAR_EOF' > doc/Config.guid &&
  1312. X\" @(#)$Id: Config.guid,v 2.13 89/03/29 16:56:35 syd Exp $
  1313. X\"
  1314. X\"  A guide to the ELM alias system and so on.
  1315. X\"  format with:
  1316. X\"      'troff tmac.n Config.guid > Config.fmtd'
  1317. X\"
  1318. X\"  (C) Copyright 1986, 1987 Dave Taylor
  1319. X\"  (C) Copyright 1988, 1989 Usenet Community Trust
  1320. X\"  Elm is now in the public trust. Bug reports, comments, suggestions, flames
  1321. X\"  etc. should go to:
  1322. X\"    Syd Weinstein        elm@dsinc.UUCP (dsinc!elm)
  1323. X\"
  1324. X\"  $Log:    Config.guid,v $
  1325. X\" Revision 2.13  89/03/29  16:56:35  syd
  1326. X\" Update for 2.2 release
  1327. X\" 
  1328. X\" 
  1329. X\"
  1330. X.po 1i
  1331. X.ds h0
  1332. X.ds h1
  1333. X.ds h2
  1334. X.ds f0
  1335. X.ds f1
  1336. X.ds f2
  1337. X.nr Hy 1
  1338. X.nr Pt 1
  1339. X.nr Pi 0
  1340. X.lg 0
  1341. X.rs
  1342. X.za
  1343. X.sp |3.0i
  1344. X.ce 99
  1345. X.ps 20
  1346. X\f3Elm Configuration Guide\f1
  1347. X.sp 4
  1348. X.ps 12
  1349. X\f2How to install and customize the Elm mail system\f1
  1350. X.sp 2
  1351. XDave Taylor
  1352. X.sp
  1353. XHewlett-Packard Laboratories
  1354. X1501 Page Mill Road
  1355. XPalo Alto CA
  1356. X94304
  1357. X.sp 
  1358. Xemail: taylor\s-1@\s+1hplabs.HP.COM  or  hplabs\s-1!\s+1taylor
  1359. X.sp 4
  1360. X>>> Elm is now in the public trust. Bug reports, comments, etc. to: <<<
  1361. X.sp
  1362. XSyd Weinstein
  1363. XDatacomp Systems, Inc.
  1364. X3837 Byron Road
  1365. XHuntingdon Valley, PA 19006-2320
  1366. X.sp
  1367. Xemail: elm\s-1@\s+1dsinc.UUCP  or  dsinc\s-1!\s+1elm
  1368. X.sp 3
  1369. X.ps 18
  1370. X\f3\(co\f1\s12 Copyright 1986,1987 by Dave Taylor
  1371. X.ps 18
  1372. X\f3\(co\f1\s12 Copyright 1988, 1989 by The USENET Community Trust
  1373. X.ps 10
  1374. X.bp 1
  1375. X.sp 5
  1376. X.ps 14
  1377. X\f3Elm Configuration Guide\f1
  1378. X.ds h0 "Elm Configuration Guide
  1379. X.ds h1
  1380. X.ds h2 "Version 2.2
  1381. X.ds f0 
  1382. X.ds f1 "Page %
  1383. X.sp
  1384. X.ps 10
  1385. X(Version 2.2)
  1386. X.sp 2
  1387. XDave Taylor
  1388. X.sp
  1389. XHewlett-Packard Laboratories
  1390. X1501 Page Mill Road
  1391. XPalo Alto CA
  1392. X94304
  1393. X.sp 
  1394. Xemail: taylor\s-1@\s+1hplabs.HP.COM  or  hplabs\s-1!\s+1taylor
  1395. X.sp 2
  1396. X>>> Elm is now in the public trust. Bug reports, comments, etc. to: <<<
  1397. X.sp
  1398. X.sp
  1399. XSyd Weinstein
  1400. XDatacomp Systems, Inc.
  1401. X3837 Byron Road
  1402. XHuntingdon Valley, PA 19006-2320
  1403. X.sp
  1404. Xemail: elm\s-1@\s+1dsinc.UUCP  or  dsinc\s-1!\s+1elm
  1405. X.sp 2
  1406. XApril 1, 1989
  1407. X.ce 0
  1408. X.sp 3
  1409. X.pg
  1410. XThis document is intended as a supplement to the \f2Elm Users Guide\f1
  1411. Xand \f2Elm Reference Guide\f1
  1412. Xand should be of interest mainly to people at a site either installing
  1413. Xor maintaining the source code to the \f3Elm\f1 mail system, or
  1414. Xmodifying the code.
  1415. X.sp 
  1416. XIt is \f2required\f1 that installation be done by using the
  1417. X\f2Configure\f1 script supplied with the system.  Please see the
  1418. Xfile \f2Instruct\f1 for further information on running \f2Configure\f1.
  1419. X.sp
  1420. XThe remainder of this document will discuss the various questions
  1421. Xasked by the \f2Configure\f1 script and the
  1422. Xoptions available via direct editing of various files and
  1423. Xparameters.  As indicated above, almost all of the sites that install
  1424. X\f3Elm\f1 should find the \f2Configure\f1 script more than
  1425. Xsufficient.
  1426. X.hu Using Configure
  1427. X.pg
  1428. X\f2Configure\fP is a shell script that will automatically determine the
  1429. Xtype of system it is running on and tune the parameters of Elm to fit
  1430. Xthat system and its environment.  Where the installer has a choice, it
  1431. Xasks questions of the installer.  \f2Configure\fP provides its own
  1432. Xinstructions when run, so they are not repeated here.  However, when
  1433. Xthe installer is presented with a choice, this next section explains
  1434. Xsome of the options available.  Not all the questions or options to
  1435. Xthose questions are explained.
  1436. X.sp 2
  1437. X.pg
  1438. XEnable calendar feature?
  1439. X.sp
  1440. XElm has a feature to take specially marked lines within mail messages
  1441. Xand add them to a file for use by the system calendar program.  The
  1442. Xcommand to do this extraction needs to be enabled to work.  There is
  1443. Xalso a follow on question regarding the name of the calendar file:
  1444. X.pg
  1445. XDefault calendar file?
  1446. X.sp
  1447. Xwhich is usually calendar on most systems.  This file will reside in the
  1448. Xusers home directory, not their .elm directory.
  1449. X.pg
  1450. XDoes your /etc/passwd file keep full names in Berkeley/V7 format (name
  1451. Xfirst thing after ':' in GCOS field)?
  1452. X.sp
  1453. XElm uses the full name from the password file if it is available.
  1454. XThere are two major ways this name is stored.  Berkeley/V7 systems
  1455. Xplace the name as the entire GCOS field string, that is it starts
  1456. Xdirectly after the ':' that delimits the fields.  USG
  1457. X.ux " Systems" (
  1458. XGroup, or AT&T) systems put the users name after a department number
  1459. Xand separate it from that number by a '-'.  The end of the users full
  1460. Xname in these systems is a '('.  Look at your /etc/password file and if
  1461. Xeither version applies, answer yes to that version.  If neither
  1462. Xapplies, answer no.  Elm can still get the users name from the
  1463. X".fullname" file in their home directory.
  1464. X.pg
  1465. XEvery now and then someone has a (gethostname, uname) that lies about
  1466. Xthe hostname but can't be fixed for political or economic reasons.
  1467. XWould you like to pretend (gethostname, uname) isn't there and maybe
  1468. Xcompile in the hostname?
  1469. X.sp
  1470. XElm needs to know the correct name of the host on which it is executing
  1471. Xto be able to create the proper headers for the outbound mail.  Some systems
  1472. Xuse one name for uucp and another name for the system and others just don't
  1473. Xreply to the subroutines with the proper name.  In this case it will be
  1474. Xnecessary to compile in the name.  In all other cases this should not
  1475. Xbe needed.  It is provided just in case there is a problem with your
  1476. Xsystem.
  1477. X.pg
  1478. XDoes your mailer understand INTERNET addresses?
  1479. X.sp
  1480. XElm will work with systems that can process the `@' character of INTERNET
  1481. Xformat addresses or with the `!' format of uucp addresses.  If your
  1482. Xmail delivery agent understands the `@' format addresses, they should be
  1483. Xused and this question is answered yes.  If when you send mail with the
  1484. X`@' format addresses (such as elm@dsinc), they bounce, then answer this
  1485. Xquestion no.
  1486. X.pg
  1487. XAm I going to be running as a setgid program?
  1488. X.sp
  1489. XOn USG type systems and many other types,
  1490. Xaccess to the mailboxes and the mailbox directory
  1491. Xis via the group permissions.  The mail user agents, such as Elm, need
  1492. Xwrite access into this directory to be able to move the mailbox around
  1493. Xdue to internal editing and to create lock files.  If the permissions
  1494. Xon your mailbox directory are drwxrwxr-x, then Elm needs to be a setgid
  1495. Xprogram.
  1496. X.pg
  1497. XWhat is the default editor on your system?
  1498. X.sp
  1499. XIf no editor is specified in the users .elm/elmrc file, this is which
  1500. Xeditor to use.  The editor is used to compose outbound mail messages.
  1501. X.pg
  1502. XWhat pager do you prefer to use with Elm?
  1503. X.sp
  1504. XThis is the standard pager to use for reading messages.
  1505. XBesides the usual system pagers, two Elm specific internal options
  1506. Xexist: builtin and builtin+.  The built-in pager is faster to execute
  1507. Xbut much less flexible than the system provided pagers.  The + version
  1508. Xjust clears the page before displaying the next page.  Otherwise the
  1509. Xtwo versions are identical.
  1510. X.hu Other Configurable Parameters
  1511. X.pg
  1512. XThe following parameters rarely need to be changed, but are provided if
  1513. Xyou need them.  \f2Configure\fP does not prompt for their values.  To
  1514. Xchange them, edit the \f2hdrs/sysdefs.h\f1 file directly after running
  1515. XConfigure.
  1516. X.lp FIND_DELTA 1.0i
  1517. XThis is the delta that the binary search of the pathalias database
  1518. Xwill use to determine when it's slicing up a single line, rather than
  1519. Xa multitude of lines.   Ideally, this should be set to 1 byte less
  1520. Xthan the shortest line in the file...the default is 10 bytes.
  1521. X.lp MAX_IN_WEEDLIST 1.0i
  1522. XThe maximum number of headers that can be specified in the weedout
  1523. Xlist of the .elm/elmrc file.  A suggested alternative approach if this
  1524. Xnumber is too small is to specify initial substrings in the file
  1525. Xrather than increasing the number.  For example, say you want to 
  1526. Xweedout the headers ``Latitude:'' and ``Latitudinal-Coords:'', you
  1527. Xcould simply specify ``Latitud''" and match them both!  Furthermore
  1528. Xyou could also specify headers like ``X-'' and remove all the user
  1529. Xdefined headers!
  1530. X.lp MAX_HOPS 1.0i
  1531. XWhen replying to a G)roup, this is the maximum number of hops that
  1532. Xa message can have taken.  This is used to try to optimize the 
  1533. Xreturn address (remove cyclic loops and so on) and regular use
  1534. Xshould show that the default of 35 is plenty more than you'll
  1535. Xever need!
  1536. X.lp system_text_file 1.0i
  1537. XThis is the source text file for the system level aliases.
  1538. XSee either the \f2newalias(1L)\f1 man page, or \f2The Elm
  1539. XAlias System Users Guide\f1 for further details.
  1540. X.lp system_hash_file 1.0i
  1541. XThis is the file that contains the hashed version of the system 
  1542. Xaliases.  
  1543. X.lp system_data_file 1.0i
  1544. XThis is the other file the \f2newalias\f1 command installs in the system
  1545. Xalias area and contains the actual addresses for each of the aliases
  1546. Xcontained in the hashed data file.
  1547. X.lp ALIAS_TEXT 1.0i
  1548. XThis is where the individual users alias text file lives.
  1549. X.lp ALIAS_HASH 1.0i
  1550. XWhere the hashed aliases are stored,
  1551. X.lp ALIAS_DATA 1.0i
  1552. Xand where the alias address data itself is kept.
  1553. X.lp DEBUGFILE 1.0i
  1554. XThe name of the file to put in the users home directory if they choose to
  1555. Xuse the `-d' debug option. 
  1556. X.lp OLDEBUG 1.0i
  1557. XThe name of the file to save the previous debug output as.  (this feature
  1558. Xwas added to ensure that users wanting to mail bug reports wouldn't 
  1559. Xautomatically overwrite the debug log of the session in question)
  1560. X.lp temp_lock_dir 1.0i
  1561. XDirectory for lock files for XENIX.
  1562. X.lp temp_file 1.0i
  1563. XTemporary file for sending outbound messages.
  1564. X.lp temp_form_file 1.0i
  1565. XA place to store temporary forms (for Forms Mode) while answering them.
  1566. X.lp temp_mbox 1.0i
  1567. XPlace to keep copy of incoming mailbox to avoid collisions with newer
  1568. Xmail.
  1569. X.lp temp_print  1.0i
  1570. XFile to use when creating a printout of a message.
  1571. X.lp temp_edit 1.0i
  1572. XFile to use when editing the mailbox file on XENIX.
  1573. X.lp temp_uuname 1.0i
  1574. XWhere to redirect output of the \f2uuname(1M)\f1 command.
  1575. X.lp mailtime_file 1.0i
  1576. XFile to compare date to to determine if a given message is New
  1577. Xsince the last time the mail was read or not.
  1578. X.lp readmsg_file 1.0i
  1579. XFile to use when communicating with the \f2readmsg\f1 program (see
  1580. Xthat program for more information)
  1581. X.lp smflags  1.0i
  1582. XDefines the flags to hand to \f2sendmail\f1 if and when the program
  1583. Xchooses to use it.
  1584. X.lp smflagsv 1.0i
  1585. XDefines the flags to hand to \f2sendmail\f1 in verbose voyuer mode.
  1586. X.lp mailer 1.0i
  1587. XIf you don't have \f2sendmail\f1, this is the mailer that'll be used.
  1588. X.lp helpfile 1.0i
  1589. XThe help file name prefix.
  1590. X.lp ELMRC_INFO 1.0i
  1591. XThe file containing textual messages associated with each
  1592. X\f3Elm\f1 variable setting in the users ``.elm/elmrc''
  1593. Xfile.  This is used when the user chooses to auto-save the
  1594. Xoptions from within the main program.
  1595. X.lp elmrcfile 1.0i
  1596. XThe name of the automatic control file (currently \f2.elmrc\f1)
  1597. X.lp old_elmrcfile 1.0i
  1598. XWhen a new elmrc file is saved, the old one is also saved, being
  1599. Xrenamed to whatever this identifier is set to.
  1600. X.lp mailheaders  1.0i
  1601. XThe name of the optional file that users may have that will be
  1602. Xincluded in the headers of each outbound message.
  1603. X.lp dead_letter 1.0i
  1604. XIf the user decides not to send a message it will instead be saved
  1605. Xto this filename in their home directory.
  1606. X.lp unedited_mail 1.0i
  1607. XIn the strange case when the mailer suddenly finds all the directories
  1608. Xit uses shut off (like \f2/usr/mail\f1 and \f2/tmp\f1) 
  1609. Xthen it'll put the current
  1610. Xmailbox into this file in the users home directory.
  1611. X.lp newalias 1.0i
  1612. XHow to install new aliases..(note: you MUST have the '-q' flag!)
  1613. X.lp readmsg 1.0i
  1614. XWhat the \f2readmsg(1L)\f1 program is installed as.
  1615. SHAR_EOF
  1616. chmod 0444 doc/Config.guid || echo "restore of doc/Config.guid fails"
  1617. echo "x - extracting doc/Elm.cover (Text)"
  1618. sed 's/^X//' << 'SHAR_EOF' > doc/Elm.cover &&
  1619. X\" @(#)$Id: Elm.cover,v 2.8 89/03/25 21:44:51 syd Exp $
  1620. X\"
  1621. X\"  Cover sheet for the ELM mail system...
  1622. X\"  format with 
  1623. X\"    troff tmac.n Elm.cover > Coversheet.fmtd'
  1624. X\"
  1625. X\"  Elm is now in the public trust. Bug reports, comments, suggestions, flames
  1626. X\"  etc. should go to:
  1627. X\"    Syd Weinstein        elm@dsinc.UUCP (dsinc!elm)
  1628. X\"
  1629. X\"  (C) Copyright 1986, 1987 Dave Taylor
  1630. X\"  (C) Copyright 1988, 1989 Usenet Community Trust
  1631. X\"
  1632. X\"  $Log:    Elm.cover,v $
  1633. X\" Revision 2.8  89/03/25  21:44:51  syd
  1634. X\" Initial 2.2 Release checkin
  1635. X\" 
  1636. X\"  
  1637. X.po 1i
  1638. X.ds h0
  1639. X.ds h1
  1640. X.ds h2
  1641. X.ds f0
  1642. X.ds f1
  1643. X.ds f2
  1644. X.nr Hy 1
  1645. X.nr Pt 1
  1646. X.nr Pi 8
  1647. X.lg 0
  1648. X.rs
  1649. X.za
  1650. X.sp |3.0i
  1651. X.ce 99
  1652. X.ps 25
  1653. X\fBThe \s26Elm\s25 Mail System\fR
  1654. X.sp 2
  1655. X.ps 14
  1656. X\fIA Replacement Mailer for All Unix Systems\fR
  1657. X.sp 4
  1658. XDave Taylor
  1659. X.sp 2
  1660. XHewlett-Packard Laboratories
  1661. X1501 Page Mill Road
  1662. XPalo Alto CA
  1663. X94304
  1664. X.sp 2
  1665. Xemail: taylor\s12@\s14hplabs \ or \ hplabs!taylor
  1666. X.sp 5
  1667. X>>> Elm is now in the public trust. Bug reports, comments, etc. to: <<<
  1668. X.sp
  1669. XSyd Weinstein
  1670. XDatacomp Systems, Inc.
  1671. X3837 Byron Road
  1672. XHuntingdon Valley, PA 19006-2320
  1673. X.sp
  1674. Xemail: elm\s-1@\s+1dsinc.UUCP  or  dsinc\s-1!\s+1elm
  1675. SHAR_EOF
  1676. chmod 0444 doc/Elm.cover || echo "restore of doc/Elm.cover fails"
  1677. echo "x - extracting doc/Filter.guid (Text)"
  1678. sed 's/^X//' << 'SHAR_EOF' > doc/Filter.guid &&
  1679. X\" @(#)$Id: Filter.guid,v 2.8 89/03/30 16:07:43 syd Exp $
  1680. X\"
  1681. X\"  A guide to the Elm Filter program
  1682. X\"  format with:
  1683. X\"     'tbl tmac.n Filter.guid | troff > Filter.format'
  1684. X\"
  1685. X\"  (C) Copyright 1986, 1987 Dave Taylor
  1686. X\"  (C) Copyright 1988, 1989 Usenet Community Trust
  1687. X\"
  1688. X\"  Elm is now in the public trust. Bug reports, comments, suggestions, flames
  1689. X\"  etc. should go to:
  1690. X\"    Syd Weinstein        elm@dsinc.UUCP (dsinc!elm)
  1691. X\"
  1692. X\"  $Log:    Filter.guid,v $
  1693. X\" Revision 2.8  89/03/30  16:07:43  syd
  1694. X\" First tmac.n checkin
  1695. X\" 
  1696. X\"
  1697. X.tm Have we been run through "tbl" first?? I hope so!
  1698. X.po 1i
  1699. X.ds h0
  1700. X.ds h1
  1701. X.ds h2
  1702. X.ds f0
  1703. X.ds f1
  1704. X.ds f2
  1705. X.nr Hy 1
  1706. X.nr Pt 1
  1707. X.nr Pi 8
  1708. X.lg 0
  1709. X.rs
  1710. X.za
  1711. X.sp |3.0i
  1712. X.ce 99
  1713. X.ps 20
  1714. X.ss 18
  1715. X.vs 12
  1716. X\f3The Elm Filter System Guide\f1
  1717. X.sp 7
  1718. X.ps 12
  1719. X\f2What the filter program is, what it does,
  1720. Xand how to use it\f1
  1721. SHAR_EOF
  1722. echo "End of part 3"
  1723. echo "File doc/Filter.guid is continued in part 4"
  1724. echo "4" > s2_seq_.tmp
  1725. exit 0
  1726.  
  1727.